package com.gzx.qc.modular.voice.check.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gzx.qc.modular.voice.check.entity.GzxVoiceCheck;
import com.gzx.qc.modular.voice.check.entity.GzxVoiceCheckDetail;
import com.gzx.qc.modular.voice.check.entity.bo.GzxVoiceCheckEditBo;
import com.gzx.qc.modular.voice.check.entity.bo.GzxVoiceCheckQueryBo;
import com.gzx.qc.modular.voice.check.entity.vo.GzxVoiceCheckVo;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;

/**
 * @author zjt
 */
public interface GzxVoiceCheckService {

    /**
     * 分页查询质检记录
     */
    Page<GzxVoiceCheckVo> pageList(GzxVoiceCheckQueryBo voiceCheckQueryBo);

    /**
     * 批量新增质检主表
     *
     * @param voiceCheckList
     */
    void insertIgnore(List<GzxVoiceCheck> voiceCheckList);

    /**
     * 批量添加质检明细
     *
     * @param voiceCheckList
     */
    void insertBatchDetail(List<GzxVoiceCheckDetail> voiceCheckList);

    /**
     * 违规审核
     *
     * @param voiceCheckEditBo
     */
    void modifyViolationStatus(GzxVoiceCheckEditBo voiceCheckEditBo);

    /**
     * 获取所有状态为0的数据
     * @return
     */
    List<GzxVoiceCheck> getVoiceCheckList();

    /**
     * 更新Ai判断的状态
     * @param gzxVoiceCheck
     */
    void updateById(GzxVoiceCheck gzxVoiceCheck);

    /**
     * 根据callId获取所对应的keyword
     * @param callId
     * @return
     */
    List<GzxVoiceCheckDetail> detailKeywordByCallId(String callId);
    /**
     * 根据条件查询
     * @param wrapper
     * @return
     */
    List<GzxVoiceCheckDetail> getGzxVoiceCheckDetailBywarpper(LambdaQueryWrapper<GzxVoiceCheckDetail> wrapper);

    /**
     * 导出质检
     */
    void exportVoiceCheck(GzxVoiceCheckQueryBo voiceCheckQueryBo, HttpServletResponse response);

    List<GzxVoiceCheck> selectList(LambdaQueryWrapper<GzxVoiceCheck> wrapper);
}
